
package com.jf.cloud.flow.service;

import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.flow.dto.FlowLogDTO;
import com.jf.cloud.flow.model.UserAnalysis;

import java.util.Date;
import java.util.List;

/**
 * 流量分析—用户数据
 *
 * @author zz
 * @date 2021-05-21 15:25:19
 */
public interface UserAnalysisService {

    /**
     * 分页获取流量分析—用户数据列表
     * @param pageDTO 分页参数
     * @return 流量分析—用户数据列表分页数据
     */
    PageVO<UserAnalysis> page(PageDTO pageDTO);

    /**
     * 根据流量分析—用户数据id获取流量分析—用户数据
     *
     * @param userAnalysisId 流量分析—用户数据id
     * @return 流量分析—用户数据
     */
    UserAnalysis getByUserAnalysisId(Long userAnalysisId);

    /**
     * 保存流量分析—用户数据
     * @param userAnalysis 流量分析—用户数据
     */
    void save(UserAnalysis userAnalysis);

    /**
     * 更新流量分析—用户数据
     * @param userAnalysis 流量分析—用户数据
     */
    void update(UserAnalysis userAnalysis);

    /**
     * 根据流量分析—用户数据id删除流量分析—用户数据
     * @param userAnalysisId 流量分析—用户数据id
     */
    void deleteById(Long userAnalysisId);

    /**
     * 统计用户信息
     * @param flowLogList
     */
    void statisticalUser(List<FlowLogDTO> flowLogList);

    /**
     *  获取近10天的新访客用户Id
     * @param startTime
     * @param endTime
     * @return
     */
    List<String> getNewVisitUserIdsInPastTenDays(Date startTime, Date endTime);

}
